#pragma once
#include <iostream>
#include <fstream>
#include <string>
#include "DataPoint.h"
#include <Eigen/Eigen>
#include <vmmlib/matrix.hpp>
#include <vmmlib/vector.hpp>
using namespace std;

class ImportData
{
private:
	//string dataline[17];
	string** data;
	DataPoint*** volume;
	int size;
	double STEP_SIZE;
	vmml::vector<3,int> axes;
	int width,height,depth;

public:
	ImportData(void);
	~ImportData(void);
	void readFile(string path);
	int countLines(string path);
	void initialize(string path);
	string** getData();
	DataPoint*** getVolume();
	void setSize(int s);
	int getSize();
	void createDataVolume(int x,int y,int z);
	vmml::vector<3,int> getIndex(double x, double y, double z);
	vmml::vec3d getPoint(int x, int y, int z);
	Eigen::VectorXd getPoint_Eigen(int x, int y, int z);
	double toNumber(string str);
	vmml::vector<3,int> getAxes();
	int getWidth();
	int getHeight();
	int getDepth();
};

